home *** CD-ROM | disk | FTP | other *** search
- unit Createdd;
-
- interface
-
- uses
- SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
- StdCtrls, ExtCtrls, Forms, Buttons, DB, DBTables, dialogs,
- utils;
-
-
-
- type
- TCreateDDForm = class(TForm)
- BitBtn1: TBitBtn;
- BitBtn2: TBitBtn;
- BitBtn3: TBitBtn;
- Label1: TLabel;
- L_DDname: TLabel;
- ProgressWindow: TMemo;
- Label2: TLabel;
- L_Tablename: TLabel;
- procedure FormShow(Sender: TObject);
- function doit(sender: tObject): boolean;
- procedure BitBtn1Click(Sender: TObject);
- procedure BitBtn2Click(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- private
- fpathName,
- fTableName : string;
- end;
-
- var
- CreateDDForm: TCreateDDForm;
-
- implementation
- uses mainmenu;
- {$R *.DFM}
-
- function TcreateDDform.doit(Sender : Tobject): boolean;
- begin
- progressWindow.lines.clear;
- progressWindow.visible := true;
- progressWindow.lines.add('Starting build...');
- try
- main.sourceDatabase.close;
- main.SourceDatabase.Params.clear;
- main.SourceDatabase.Params.Add('PATH='+fPathName);
- main.SourceDatabase.open;
- with main.dicttable do begin
- active := false;
- databasename := main.sourceDatabase.databasename;
- tablename := fTableName;
- tabletype := ttdBase;
- with FieldDefs do begin
- clear;
- Add('TABLE_NAME', ftString, 20, false);
- Add('TABLE_TYPE', ftString, 20, false);
- Add('FIELD_NAME', ftstring, 20, false);
- Add('TAG', ftstring, 20, false);
- Add('SCR_PROMPT', ftString, 40, false);
- {tfield.DisplayName, Value to show name of field}
- Add('SCR_FMT' , ftString, 80, false);
- {tfield.DisplayText formating rules for display}
- Add('GRD_PROMPT', ftstring, 10, false);
- {tfield.DisplayLabel, label in DbGrid}
- Add('GRD_WIDTH', ftsmallint, 0, false);
- {tfield.DisplayWidth defaults to 10 except for character}
- Add('FIELD_TYPE', ftstring, 12, false);
- {letter code from appsuprt.fieldTypeLtr}
- Add('FIELD_LEN', ftsmallint, 0, false);
- {tfield.size:
- For a TStringField, Size is the number of bytes reserved for the field in the dataset.
- For a TBCDField, it is the number of digits following the decimal point.
- For a TBlobField, TBytesField, TVarBytesField, TMemoField or TGraphicField it is the size
- of the field as stored in the table.}
- Add('FIELD_DEC', ftsmallint, 0, false);
- {only used in formating float numbers}
- Add('FIELD_IDX', ftBoolean, 0, false);
- { flag to indicate creation of index}
- Add('IDX_EXPRES', ftMemo, 254, False);
- { Expression for index, if any}
- Add('TAB_ORDER', ftsmallint, 0, false);
- { index order in table}
- Add('REQUIRED', ftBoolean, 0, false);
- {tfield.required}
- Add('DEFAULT', ftString, 80, false);
- {if there is a default value}
- Add('EDITMASK', ftString, 80, false);
- {tfield.EditMask to control input}
- Add('MinVal', ftFloat, 0, false);
- Add('MaxVal', ftFloat, 0, false);
- Add('ValList', ftMemo, 1024, false);
- Add('DEFINE', ftMemo, 1024, false);
- {documentation memo}
- Add('VALIDVALUE', ftMemo, 1024, false);
- {for numeric fields: t(whatever).minValue, maxvalue
- for string fields, a comma delimited list}
- Add('NOTES', ftMemo, 1024, false);
- {documentation memo}
- Add('HINT', ftString, 120, false);
- {hint text}
- Add('HELPID', ftInteger, 0, false);
- {help context id number}
- Add('HELP', ftMemo, 1024, false);
- {help file text}
- Add('HASLINK', ftBoolean, 0, false);
- {If true, then uses a table look up to get data}
- Add('SRCLINKTBL', ftString, 20, false);
- {table to look in}
- Add('SRCLINKFLD', ftString, 20, false);
- {field to get value from}
- ADD('IS_CALC', ftBoolean, 0, false);
- {Calculated field, build at runtime only}
- ADD('FORMULA', ftMemo, 1024, false);
- {documentation memo about how calc is done}
- end; {with fielddefs}
- progressWindow.lines.add('Fields defined...');
- createTable;
- Result := true;
- end; {with table1}
- progressWindow.lines.add('Empty Dictionary Built.');
- except
- on EdatabaseError do
- begin
- MessageDLg('Error attempting to create DD file.',
- mtInformation, [mbOK], 0);
- Result := false;
- end;
- end; {except block}
- end;
-
- procedure Tcreateddform.BitBtn1Click(Sender: TObject);
- begin
- if doit(sender)
- then ModalResult := mrYes
- else ModalResult := mrNo;
- end;
-
- procedure TCreateDDForm.FormShow(Sender: TObject);
- begin
- fPathName := extractFilePath(main.newddname);
- fTableName := extractFileName(main.newddname);
- fTableName := copy(fTableName, 1, pos('.', ftableName)-1);
- l_ddname.caption := fpathname;
- l_tablename.caption := ftablename;
- end;
-
-
- procedure TCreateDDForm.BitBtn2Click(Sender: TObject);
- begin
- close;
- end;
-
-
- procedure TCreateDDForm.FormCreate(Sender: TObject);
- begin
- scaleForm(sender);
- end;
-
- end.
-